home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / games / nhak_src.zip / INSTALL.VMS < prev    next >
Text File  |  1993-03-16  |  11KB  |  183 lines

  1.  
  2.                Instructions for Installing NetHack 3.0 
  3.                           on a VMS system
  4.                =======================================
  5.  
  6.     (Credit for an enhanced VMS NetHack 3.0 goes to the VMS team of
  7.     Joshua Delahunty and Pat Rankin who built on the work of David
  8.     Gentzel.)
  9.  
  10. 1.  Building NetHack requires a C compiler (either VAX C or GNU C) and
  11.     VMS version 4.6 or later (but see note #9).  It has been tested on 5.3;
  12.     as of this writing, 5.4 has not yet been released.  For MicroVMS 4.6
  13.     or 4.7, an extra edit is required in file vmsconf.h (see step #3).
  14.     The new build procedure (vmsbuild.com) should not need to be
  15.     modified; it now accepts an option for selecting VAXC vs GNUC, and it
  16.     can detect different versions of VAXC to use appropriate CC command
  17.     qualifiers.  Versions of VAXC earlier than v2.3 will produce many
  18.     warning messages (over 100 per source file; close to 10,000 total!),
  19.     but NetHack has been verified to compile, link, and execute correctly
  20.     when built with VAXC v2.2 using vmsbuild.com.
  21.  
  22. 2.  Make sure all the NetHack files are in the appropriate directory
  23.     structure.  You should have a main directory with subdirectories
  24.     [.vms], [.src], [.include], [.auxil], and [.others]; you may also
  25.     have [.amiga] and [.mac], but they are not needed to build NetHack
  26.     on VMS.  If you do not follow this structure, the supplied procedures
  27.     and instructions in this file will not function properly.  The .c
  28.     files in [.src] are files which are used by all versions of NetHack,
  29.     regardless of machine (there are a few UNIX-specific files, but we can
  30.     ignore them).  The build & install command procedures (.com), the
  31.     VMS-specific .c files, and one VMS-specific .h file belong in [.vms].
  32.     All the .h files (except lev_lex.h) belong in [.include].  Other
  33.     assorted files belong in [.auxil].  The only files in [.others] used
  34.     by the VMS version of NetHack are random.c and possibly termcap.
  35.     (The directory structure is also described in the file called Files.)
  36.  
  37. 3.  Go to the [.include] subdirectory and edit vmsconf.h according to
  38.     the comments.  You may also want to edit config.h, but that's only
  39.     necessary if you want or need to disable some of the game options.
  40.     The distributed copy of config.h will work successfully on VMS;
  41.     vmsconf.h has conditional code to deal with the UNIX-specific items.
  42.  
  43. 4.  Go to the [.src] directory and look at the top of topten.c.  You may
  44.     want to change the definitions of PERSMAX and PERS_IS_UID here to get
  45.     different behavior from the high score list.
  46.  
  47. 5.  If you have lex or flex and yacc or bison, you may edit the procedure
  48.     [.vms]spec_lev.com and execute it to process a couple of source files
  49.     for NetHack's special level compiler.  This step is optional; the
  50.     distribution contains pre-processed versions of these files that can
  51.     be used as is.
  52.        $ @[.VMS]SPEC_LEV        !{OPTIONAL}
  53.     If you perform this step, do so prior to executing vmsbuild.com.
  54.  
  55. 6.  To build NETHACK.EXE and a couple of its auxiliary programs, execute
  56.     the following two DCL commands:
  57.        $ SET DEFAULT [.SRC]     !assuming you're currently in 'main'
  58.        $ @[-.VMS]VMSBUILD       !defaults to VAXC unless symbol 'CC' exists
  59.     or $ @[-.VMS]VMSBUILD "GNUC"
  60.     then go get a cup of coffee or take a nap.  Using VAXC v3.1, the
  61.     build procedure takes about 45-60 minutes on an unloaded VAXstation
  62.     3100-38 with local disk; it will take *much* longer on slower systems
  63.     such as uVAX-II and 11/7xx.  After completion, you should now have
  64.     created the game executable, NETHACK.EXE, with a size of roughly 1300
  65.     blocks (larger if the VAXCRTL object-library option of vmsbuild is used).
  66.  
  67. 7.  Go back to the main directory.  Edit [.vms]install.com to indicate
  68.     where you want everything to be installed.  Use the command
  69.        $ @[.VMS]INSTALL
  70.     to build some data files using the two auxiliary programs, and to
  71.     create the target directory and copy all necessary files there.
  72.     After it completes, the files [.src]*.obj, [.src]nethack.olb and
  73.     [.src]*.exe can be deleted if you wish to recover their disk space.
  74.  
  75. Notes:
  76.  
  77. 1.  VMS NetHack uses the termcap routines borrowed from GNU Emacs.  These
  78.     have been supplied for those who do not already have GNU Emacs, but
  79.     they are not properly a part of the NetHack distribution.  Since
  80.     these files (vmstermcap.c and vmstparam.c) bear the usual GNU license,
  81.     any executable made with these files is also under the GNU license,
  82.     which among other things means you must be prepared to distribute all
  83.     the source that went into the executable if you distribute the
  84.     executable.  See the GNU license in the files for further details.
  85.  
  86. 2.  termcap is a text file containing descriptions of terminal capabilities
  87.     and the escape sequences that software must use to take advantage of
  88.     them.  If you do not already have a termcap file in use on your
  89.     system there is a small one in file [.OTHERS]TERMCAP.  It contains
  90.     definitions for common Digital terminals, also suitable for most
  91.     clones and emulators.  NetHack uses the translation of the logical
  92.     name TERMCAP to find the termcap file, so you need to use the DCL
  93.     command DEFINE or ASSIGN to set it up.  It uses the logical name
  94.     NETHACK_TERM to get the name of the terminal (such as "vt100").  If
  95.     that logical name is not defined, it tries EMACS_TERM.  If that also
  96.     is not defined, it uses the value generated by the C Run-Time library,
  97.     which is normally of the form "vt100-80" or "vt200-132".
  98.  
  99. 3.  There is code which attempts to make NetHack secure in case it is
  100.     installed with privileges (to allow the playground to be protected against
  101.     world write).  THIS HAS NOT BEEN TESTED.  Install NetHack with privileges
  102.     at your own risk.  If you do so, however, we would love to hear of your
  103.     experiences, good or bad.  The default setup uses world-writeable files,
  104.     which is NOT secure and not advisable in any environment where there
  105.     are untrustworthy users.  If you allow users to run NetHack from
  106.     captive accounts (VMS 5.1 or earlier) or from restricted accounts
  107.     (5.2 and later), you must either make sure that they do not have TMPMBX
  108.     privilege or else disable NetHack's ability to spawn an interactive
  109.     subprocess.  To disable subprocesses, disable the "!" (shell) command
  110.     by commenting out the definition of SHELL in vmsconf.h prior to
  111.     building the program.  This necessity will be removed in a future
  112.     release, where NetHack will check for captive accounts correctly.
  113.  
  114. 4.  VMS NetHack uses SMG$READ_KEYSTROKE to read characters from the
  115.     keyboard.  This means that arrow keys work, but also means that using
  116.     escape to abort commands doesn't.  If you want to abort a command use
  117.     two escapes or ^Z.  Just about any non-arrow function key should also
  118.     work as an abort.  Note that under UNIX ^Z is the suspend command; a
  119.     future release may re-utilize ^Z in some similar capacity on VMS.
  120.  
  121. 5.  NetHack does not run in PASTHRU or PASSALL mode.  This is to allow ^C
  122.     interrupts.  An unpleasant (albeit minor) side-effect of this is that
  123.     some wizard commands don't work (^G, ^O, ^X).  Another side-effect is
  124.     that ^Y and ^C echo "<interrupt>" and "<cancel>" respectively.  This
  125.     will be fixed in a future release.
  126.  
  127. 6.  To install an update of this version of NetHack after changing something
  128.     you will have to go through almost the entire build process (unless you
  129.     know for certain exactly what needs to be rebuilt).  If you added,
  130.     deleted, or reordered monsters or objects or changed the format of saved
  131.     level files, you should also remove any saved games and bones levels.
  132.     (Trying to use such files often produces amusing but useless confusions
  133.     on the game's part.)  If you just want to re-link the program, you
  134.     can invoke vmsbuild.com with a parameter value of "LINK", as in
  135.        $ @[-.vms]vmsbuild "LINK"
  136.     If you need to link with the GNUC library, then you must have a DCL
  137.     symbol 'CC' whose value begins with "G" (or "g").  This is necessary
  138.     because the mechanism for specifying GNUC vs VAXC is not accessible
  139.     when you specify "LINK" as the procedure parameter.
  140.  
  141. 7.  In version 3.0 patchlevel 7, the format of the record (score) file
  142.     was changed.  If you want to use an old record file from an earlier
  143.     version, manually edit it so that the killer (last item on each line)
  144.     is preceded by "killed by", "killed by a", or "killed by an".  If the
  145.     death was by petrification, use "petrified by" instead.  Do not
  146.     change "starvation", "quit", "escaped", or "ascended".  Record files
  147.     retained from patchlevel 7 to patchlevel 8 do not need any fixups.
  148.  
  149. 8.  NetHack optionally maintains a logfile which receives one line appended
  150.     to it whenever a game ends.  This can be disabled entirely by adding
  151.     an "#undef LOGFILE" directive to vmsconf.h prior to building the
  152.     program, or it can be disabled later by removing the file "LOGFILE."
  153.     from the playground directory.  If not disabled prior to compilation,
  154.     the logfile can be reinitialized by simply creating an empty LOGFILE
  155.     in the playground, but make sure that it's protected properly or new
  156.     entries will not be appended.
  157.  
  158. 9.  Support for VMS versions earlier than V4.6 is now included.  The need
  159.     for this support is detected automatically by vmsbuild.com, and also
  160.     automatically used when needed, but it has not received as thorough a
  161.     testing as the rest of NetHack.  The reason that special support is
  162.     needed is that the C Run-Time Library (VAXCRTL) underwent a major
  163.     revision for VMS V4.6.  Several routines which NetHack utilizes were
  164.     not available prior to that upgrade.
  165.  
  166. 10. The new release of vmsbuild.com collects most of the object files
  167.     (xxx.OBJ) into an object library (NETHACK.OLB) as it compiles the
  168.     source files.  This should prevent the EXQUOTA problem that some
  169.     sites have reported when linking nethack.exe, by limiting the number
  170.     of files which the linker accesses at one time.  Note that if you
  171.     compile any source files manually, you'll need to replace those
  172.     modules in the object library prior to linking the program:
  173.        $ cc/include=[-.include] [-.vms]vmstty   !for example
  174.        $ libr/obj nethack vmstty                !replace VMSTTY
  175.        $ @[-.vms]vmsbuild LINK                  !re-link NETHACK.EXE
  176.     If you forget to replace the library entry, your newly compiled code
  177.     will not be included in the new executable image.
  178.  
  179. 11. If necessary, send problem reports via email to
  180.        "nethack-bugs@linc.cis.upenn.edu"  (Internet address 130.91.6.8).
  181.  
  182. 27-MAY-1990
  183.